package com.gulimall.product;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

/*
*  1. 整合mybatis-plus
*       1). 导入依赖
*       <!--        mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.7</version>
        </dependency>
*       2). 配置
*           1. 配置数据源
*               1).导入数据库的驱动
*               2).在application.yml中配置数据源的相关信息
*           2. 配置mybatis-plus
*               1)使用mapper-scan 用于 MyBatis 的注解，通常用于 Spring Boot 项目中，以便自动扫描并注册指定包中的所有 Mapper 接口。
*               2）告诉mybatis-plus映射文件在哪里
*
*   2、逻辑删除
*       1）配置全局的逻辑删除规则，在apllication.yml中配置（可以省略）
                        * mybatis-plus:
                          global-config:
                            db-config:
                              logic-delete-field: deleted # 全局逻辑删除字段名
                              logic-delete-value: 1 # 逻辑已删除值
                              logic-not-delete-value: 0 # 逻辑未删除值
*       2）配置逻辑删除的组件，要要求mybatis-plus版本在3.1以下才需要配置，这里不需要
*       3）给Bean实体字段需要加上@TableLogic注解
* */
@EnableRedisHttpSession
@EnableFeignClients(basePackages = "com.gulimall.product.feign")
@EnableDiscoveryClient
@MapperScan("com.gulimall.product.dao")
@SpringBootApplication
@EnableCaching
public class GulimallProductApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallProductApplication.class, args);
    }

}
